#ifndef ERRORMANAGER_H_INCLUDED
#define ERRORMANAGER_H_INCLUDED

#define INVALID_CARACTER 100
#define INVALID_NUMBER 101
#define UNEXPECTED_COMMENTARY_END 102
#define UNEXPECTED_EOF_COMMENTARY 103
#define UNEXPECTED_EOF_LITERAL 104
#define MEMORY_OVERFLOW 105
#define FILE_NOT_FOUND 106

#define EXTEND_OR_BRACE_EXPECTED 110
#define STATIC_OR_TYPE_EXPECTED 111
#define METHOD_NAME_EXPECTED 112
#define LBRACKET_EXPECTED 113
#define RBRACE_METHOD_EXPECTED 114
#define RBRACE_CLASS_EXPECTED 115
#define RBRACE_IF_EXPECTED 116
#define RBRACE_WHILE_EXPECTED 117
#define SEMICOLON_EXPECTED 118
#define LPARENT_EXPECTED 119
#define RPARENT_EXPECTED 120
#define INVALID_EXPRESSION 121
#define TYPE_EXPECTED 122
#define INVALID_STATEMENT 123
#define INVALID_INSTANCING 124
#define MISSED_EXTENDS 125

#define UNDECLARED_VAR 126
#define VAR_EXISTS 127
#define CLASS_EXISTS 128
#define UNDECLARED_METHOD 129
#define METHOD_EXISTS 130
#define UNDECLARED_CLASS 131
#define PARAMETER_EXISTS 132
#define ATTRIBUTE_EXISTS 133
#define INCOMPATIBLE_TYPES 134
#define INCOMPATIBLE_TYPES_RETURN 135
#define INCOMPATIBLE_TYPES_ASSIGN 136
#define INCOMPATIBLE_TYPES_LOOP 137
#define BAD_USE_LENGTH 138
#define INVALID_EXPRESSION_IDX 139
#define INVALID_NAME 140
#define MAIN_EXISTS 141
#define MAIN_NOT_EXISTS 142
#define INVALID_READ_EXPRESSION 143
#define INVALID_PRINT_EXPRESSION 144
#define INVALID_ARRAY_LENGTH 145
#define VECTOR_OPERATION 146
#define AUSENT_RETURN 147
#define UNDEFINED_VARIABLE 148

void ErrorMessage(int error, int line);
void ErrorMessage(int line, int token, int expected);
void ErrorMessage();
unsigned int getNum_Error();

#endif // ERRORMANAGER_H_INCLUDED
